package org.bedracket.pgeg.datagen;

import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.data.tags.ItemTagsProvider;
import net.minecraft.data.tags.TagsProvider;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.common.data.ExistingFileHelper;
import org.bedracket.pgeg.PGEGMod;
import org.bedracket.pgeg.init.ModItems;
import org.bedracket.pgeg.init.ModTags;
import org.jetbrains.annotations.Nullable;

import java.util.concurrent.CompletableFuture;

public class ModItemTagsProvider extends ItemTagsProvider {

    public ModItemTagsProvider(PackOutput pOutput, CompletableFuture<HolderLookup.Provider> pLookupProvider, TagsProvider<Block> p_256467_,  @Nullable ExistingFileHelper existingFileHelper) {
        super(pOutput, pLookupProvider, p_256467_, PGEGMod.MOD_ID, existingFileHelper);
    }

    @Override
    protected void addTags(HolderLookup.Provider pProvider) {
        saturniumTags();
        baguaTags();
    }

    private void saturniumTags() {
        tag(ModTags.ModItemTags.SATURNIUM_TOOLS).add(ModItems.SATURNIUM_AXE.get());
        tag(ModTags.ModItemTags.SATURNIUM_TOOLS).add(ModItems.SATURNIUM_HOE.get());
        tag(ModTags.ModItemTags.SATURNIUM_TOOLS).add(ModItems.SATURNIUM_PICKAXE.get());
        tag(ModTags.ModItemTags.SATURNIUM_TOOLS).add(ModItems.SATURNIUM_SWORD.get());
        tag(ModTags.ModItemTags.SATURNIUM_TOOLS).add(ModItems.SATURNIUM_SHEARS.get());
        tag(ModTags.ModItemTags.SATURNIUM_TOOLS).add(ModItems.SATURNIUM_SHOVEL.get());
    }

    private void baguaTags() {
        tag(ModTags.ModItemTags.BAGUA).add(ModItems.QIAN_DIAGRAM.get());
        tag(ModTags.ModItemTags.BAGUA).add(ModItems.KUN_DIAGRAM.get());
        tag(ModTags.ModItemTags.BAGUA).add(ModItems.ZHEN_DIAGRAM.get());
        tag(ModTags.ModItemTags.BAGUA).add(ModItems.XUN_DIAGRAM.get());
        tag(ModTags.ModItemTags.BAGUA).add(ModItems.KAN_DIAGRAM.get());
        tag(ModTags.ModItemTags.BAGUA).add(ModItems.LI_DIAGRAM.get());
        tag(ModTags.ModItemTags.BAGUA).add(ModItems.GEN_DIAGRAM.get());
        tag(ModTags.ModItemTags.BAGUA).add(ModItems.DUI_DIAGRAM.get());
    }
}
